// stdx/fsx.rs
// CRITICAL: 文件系统 fs 示例（读/写/metadata），示例被注释以避免副作用。
// AUTO_COMMENT: 在真实示例中运行时请小心文件路径和权限。

#[allow(dead_code)]
pub fn stdx_examples_fsx() {
    use std::fs;
    use std::path::PathBuf;

    // CRITICAL: 构建 PathBuf
    let mut pb = PathBuf::from("/tmp");
    pb.push("stdx_example.txt");

    // CRITICAL: 读取文件（示例注释，避免副作用）
    // let content = fs::read_to_string(&pb).unwrap_or_default();

    // CRITICAL: 写入文件示例（注释掉）
    // let _ = fs::write(&pb, "example");

    // CRITICAL: metadata 查询（非破坏性）
    let _meta = fs::metadata("/tmp").ok();

    let _ = pb;
}
// stdx/fmtx.rs
// CRITICAL: 格式化与显示相关示例（format!, println!, Debug/Display）。
// AUTO_COMMENT: 保持示例简短，遵循 Rust 风格。

use std::fmt;

#[allow(dead_code)]
pub fn stdx_examples_fmtx() {
    // CRITICAL: format! 用于构造字符串
    let name = "rust";
    let s = format!("hello {}", name);

    // CRITICAL: Display 与 Debug trait 的区别
    #[derive(Debug)]
    struct Point {
        x: i32,
        y: i32,
    }

    impl fmt::Display for Point {
        fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
            write!(f, "Point({}, {})", self.x, self.y)
        }
    }

    let p = Point { x: 1, y: 2 };
    let _ = format!("{} - {:?}", p, p);
    let _ = (s, p);
}
